﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;

namespace GenericWin
{
    /// <summary>
    /// Cette interface doit être implémenter par le controleur de l'application principal.
    /// Elle permet de savoir quel écran doit etre instancié lors d'un clic sur item du menu mais aussi
    /// de construire le menu de la fenetre principal
    /// </summary>
    public interface IMenuAction
    {
        /// <summary>
        /// Retourne l'écran voulu suite à un clic sur un élément du menu
        /// </summary>
        /// <param name="item">item cliqué</param>
        /// <returns>Vue retournée</returns>
        GenericUserControl DoAction(MenuItemViewModel item);

        /// <summary>
        /// Permet de construire le menu pour la fenêtre principale
        /// </summary>
        /// <returns>Retourne le menu de l'application</returns>
        List<MenuItemViewModel> BuildMenu();
    }
}
